﻿using Library.Common.Model;
using Synthesize.BaseSet.ServiceInterface.Dtos.Authority.User;
using System.Threading.Tasks;

namespace Synthesize.BaseSet.ServiceInterface.UseCase.Authority
{
    public interface IUserService
    {
        /// <summary>
        /// 添加用户信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> Create(RegisterUserInput input);

        /// <summary>
        /// 编辑用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> Update(UpdateUserInput input);

        /// <summary>
        /// 重置密码
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> ResetPassword(ResetUserPasswordInput input);

        /// <summary>
        /// 禁用/启用用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> ForbidOrEnable(ForbidOrEnableInput input);

        /// <summary>
        /// 删除用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> DeleteById(SingleDeleteInput input);
    }
}
